#ifndef _Checker_h_
#define _Checker_h_

//#include "Input.h"

#include "../Utils/Util.h"

class Checker {
    public:
        virtual bool check() {
            return false;
        }
        virtual void clear() {
            return;
        }
        virtual ~Checker() {
        }
    private:
};

class KeyChecker : public Checker {
  public:
    KeyChecker(std::string s);
    KeyChecker();
    KeyChecker(const KeyChecker&);
    ~KeyChecker();
    bool check();
    void clear();
    KeyChecker operator=(const KeyChecker&);
  private:
    SDLKey key;
};

class MouseChecker : public Checker {
  public:
    MouseChecker();
    MouseChecker(std::string s);
    MouseChecker(const MouseChecker&);
    ~MouseChecker();
    bool check();
    void clear();
    MouseChecker operator=(const MouseChecker&);
  private:
    int button;
};

#endif
